package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface UserMapper {

    /**
     * 查询所有用户
     */
    List<User> selectAll();

    /**
     * 根据ID查询用户
     */
    User selectById(Integer id);

    /**
     * 插入用户
     */
    int insert(User user);

    /**
     * 更新用户
     */
    int updateById(User user);

    /**
     * 删除用户
     */
    int deleteById(Integer id);

    /**
     * 统计用户数量
     */
    long count();

    /**
     * 分页查询用户
     */
    List<User> selectWithPagination(int offset, int size);

    /**
     * 批量插入用户
     */
    int batchInsert(List<User> users);

    /**
     * 按名称模糊查询用户
     */
    List<User> selectByNameLike(@Param("name") String name);

    /**
     * 根据统一认证号查询用户
     */
    User selectByAuthId(String authId);

    /**
     * 根据邮箱查询用户
     */
    User selectByEmail(String email);
    
    /**
     * 根据部门ID查询用户列表
     */
    List<User> selectByDeptId(Integer deptId);
}